package w83b.w83bManager;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;


import w83b.w83bBeans.W83bTiposVocesBean;
import w83b.w83bBeans.W83bUsuarioXLNetsBean;
import w83b.w83bDAO.W83bFactoriaDAO;


public class W83bTiposVoces implements W83bITiposVoces {

	public List buscarTiposVoces(W83bTiposVocesBean param) throws Exception {
		
		List listaTiposVoces = W83bFactoriaDAO.getMantenimientosDAO().buscarTiposVoces(param);
		
		return listaTiposVoces;	
	}

	public String asociarTiposVoces(ArrayList param) {
		
		String resultado = "0";
		
		/**
		 * FALTA IMPLEMENTAR TODO EL INTERIOR EN ImantenimientosDAO y mantenimientosDAO
		 */
		return resultado;
	
	}

	public String anyadirTiposVoces(W83bTiposVocesBean param) throws Exception {
	
		String resultado = "0";		
		if(StringUtils.isEmpty(param.getCodTipoVoz())){
			String maxTipoVoz = W83bFactoriaDAO.getMantenimientosDAO().maxCodTiposVoces();	
				maxTipoVoz = String.valueOf(Integer.parseInt(maxTipoVoz)+1);//NOPMD
				resultado = maxTipoVoz;
				param.setCodTipoVoz(maxTipoVoz);
				if(StringUtils.isNotEmpty(param.getDescTipoVoz())){
					W83bFactoriaDAO.getMantenimientosDAO().anyadirTiposVoces(param);
				}else{
					resultado = "-2";
				}
		}else {
			if(!W83bFactoriaDAO.getMantenimientosDAO().existeTiposVoces(param.getCodTipoVoz())){					
				if(StringUtils.isNotEmpty(param.getDescTipoVoz())){
					W83bFactoriaDAO.getMantenimientosDAO().anyadirTiposVoces(param);
				}else{
					resultado = "-2";
				}
			}else{
				resultado = "-1";				
			}
		}
		
		return resultado;
	}

	public String modificarTiposVoces(W83bTiposVocesBean param)
			throws Exception {
			
		String resultado = "0";		
		if(StringUtils.isNotEmpty(param.getDescTipoVoz())){
			resultado = W83bFactoriaDAO.getMantenimientosDAO().modificarTiposVoces(param);
		}else{
			resultado = "-2";
		}			
		return resultado;
	}

	public W83bTiposVocesBean detalleTiposVoces(W83bTiposVocesBean param)
			throws Exception {
						
		w83b.w83bBeans.W83bTiposVocesBean tiposVoces = W83bFactoriaDAO.getMantenimientosDAO().detalleTiposVoces(param);	
		
		return tiposVoces;
	}

	public String borrarTiposVoces(ArrayList param) throws Exception,
			RemoteException {
		
		W83bUsuarioXLNetsBean userBean = (W83bUsuarioXLNetsBean)param.get(param.size()-1);
		param.remove(param.size()-1);
		
		String resultado =  W83bFactoriaDAO.getMantenimientosDAO().borrarTiposVoces(param,userBean);			
		
		return resultado;
	}
	
}